#if !defined(ximera_gui_cegui_listbox_hpp)
#define ximera_gui_cegui_listbox_hpp

// -----------------------------------------------------------

#include <ximera/gui/ilistbox.hpp>
#include <ximera/gui/cegui/windowtemplate.hpp>

#include <elements/CEGUIListbox.h>
#include <elements/CEGUIListboxTextItem.h>

namespace ximera { namespace gui { namespace cegui
{
    class XIMERA_PLUGIN_API Listbox : public WindowTemplate<IListbox>
    {
    public:
        Listbox(CEGUI::Listbox* ceguiListbox)
            : WindowTemplate<IListbox>(ceguiListbox) {}

        UInt32 itemCount() const;

        void addItem(String const& text);
        void removeItem(UInt32 index);
        void removeAllItems();

        Int32 selectedIndex() const;

        CEGUI::Listbox* ceguiListbox() const { return static_cast<CEGUI::Listbox*>(_ceguiWindow); }
    };
}}}

// -----------------------------------------------------------

#endif
